// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSegmentAttributesImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

#pragma once
#include <list>
#include "../dialect/oracle/ast/OracleSegmentAttributesImpl.h"

class SQLExpr;
class SQLASTVisitor;

enum SQLPartitionValue_Operator
{
  LessThan,
  In,
  List
};

class SQLPartitionValue : public OracleSegmentAttributesImpl
{
public:
  SQLPartitionValue_Operator operator_;
  SQLExpr_list_ptr  items;

  SQLPartitionValue(SQLPartitionValue_Operator operator_);
SHAREDOBJECT(SQLPartitionValue);
  SQLExpr_list_ptr getItems();

  void addItem(SQLExpr_ptr item);

  SQLPartitionValue_Operator getOperator();

  // @Override
  void accept0(SQLASTVisitor_ptr visitor) override;

  // SQLPartitionValue *clone();
  virtual SQLObject_ptr clone();
};
